﻿#ifndef __SS_HASH_MAP_H__
#define __SS_HASH_MAP_H__

#ifdef SS_USE_WINDOWS
#if _MSC_VER>=1600//vc10
	#include <unordered_map>
	#define HASH_MAP std::unordered_map
#else
	#include <hash_map>
	#define HASH_MAP stdext::hash_map
#endif
#else
#include <ext/hash_map>
namespace __gnu_cxx
{
	template<>
	struct hash<long long int>
	{
		std::size_t operator()(long long int _x) const
		{
			return _x;
		}
	};
	template<>
	struct hash<std::string>
	{
		std::size_t operator()(const std::string& _s) const
		{
			return __stl_hash_string(_s.c_str());
		}
	};
}
//namespace std
//{
//	using namespace __gnu_cxx;
//}
#define HASH_MAP __gnu_cxx::hash_map
#endif

#endif
